/**
 * 通用工具函数
 */

/**
 * 分享功能实现
 * @param url 要分享的URL，默认为当前页面URL
 * @param title 要分享的标题，默认为当前页面标题
 * @param articleId 文章ID，如果提供则构建只包含ID的文章分享链接
 * @returns Promise<boolean> 分享是否成功
 */
export const shareContent = async (url?: string, title: string = document.title, articleId?: number): Promise<boolean> => {
  // 如果提供了文章ID，构建只包含ID的分享链接
  const shareUrl = articleId ? `${window.location.origin}/article?id=${articleId}` : (url || window.location.href);
  try {
    // 检测是否为移动设备
    const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
    
    if (isMobile && navigator.share) {
      // 移动端调用系统分享
      await navigator.share({
        title: title,
        url: shareUrl,
      });
      return true;
    } else {
      // 电脑端复制链接
      await navigator.clipboard.writeText(shareUrl);
      alert('链接已复制到剪贴板！');
      return true;
    }
  } catch (err) {
    console.error('分享失败:', err);
    // 降级处理：如果系统分享失败，尝试复制链接
    try {
      await navigator.clipboard.writeText(shareUrl);
      alert('链接已复制到剪贴板！');
      return true;
    } catch (clipboardErr) {
      alert('无法复制链接，请手动复制地址栏中的URL。');
      return false;
    }
  }
};

/**
 * 检测是否为移动设备
 * @returns boolean 是否为移动设备
 */
export const isMobileDevice = (): boolean => {
  return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
};

/**
 * 复制文本到剪贴板
 * @param text 要复制的文本
 * @returns Promise<boolean> 复制是否成功
 */
export const copyToClipboard = async (text: string): Promise<boolean> => {
  try {
    await navigator.clipboard.writeText(text);
    return true;
  } catch (err) {
    console.error('复制到剪贴板失败:', err);
    return false;
  }
};

/**
 * 复制文本到剪贴板
 * @param text 要复制的文本
 * @returns Promise<boolean> 复制是否成功
 */
export const ImgProcess = (text: string): string => {
  if (text) {
    if(text.startsWith('http')){
      return text;
    }
    return process.env.NEXT_PUBLIC_BASE_API_URL + text;
  }
  
  return '/default.webp';
};